package cn.wolfcode.crm.service;

import cn.wolfcode.crm.domain.LatentClient;
import cn.wolfcode.crm.query.LatentClientQueryObject;
import cn.wolfcode.crm.query.PageResult;

import java.util.List;

public interface ILatentClientService {
    void insert(LatentClient record);

    LatentClient selectByPrimaryKey(Long id);

    void updateByPrimaryKey(LatentClient record);

    PageResult query(LatentClientQueryObject qo);

    /**
     * 潜在客户表转状态记录
     * @param id:前台传过来的id,只能是0或1
     */
    void changeState(Long id);

    /**
     * 通过改变id的值来改变客户状态,从而显示不同的客户信息
     * @param id:前台传过来的id
     * @return:返回对应客户状态信息集合
     */
    void changStatus(Long id);

    /**
     * 查询资源池客户信息
     * @param qo
     * @return
     */
    PageResult selectClientByStatus(LatentClientQueryObject qo);

    /**
     * 查询正式客户信息
     * @param qo
     * @return
     */

    PageResult selectStateByStatus(LatentClientQueryObject qo);

    LatentClient selectApplicantById(Long id);

    void plan(Long id);

    void deleteLatentClient(Long id);

    //改变状态为移交客户状态
    void changeStateTransfer(Long id);

    List<LatentClient> listAll();

    void turnState(Long id);


    /**
     * 资源池 -- > 潜在客户
     * @param id
     */
    void changeState2Latent(Long id);






    //根据状态查用户
    List<LatentClient> selectByStatus(int status);

    void deleteByPrimaryKey(Long id);

    //唐繁创建的方法
    //void changStatus(Long clientId);
    //唐繁创建的方法
    //void turnState(Long clientId);
}
